// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once

#include "GameSettingAction.h"
#include "GameSettingValueScalarDynamic.h"

#include "LyraSettingAction_SafeZoneEditor.generated.h"

class UGameSetting;
class UObject;

/**
 * 安全区域数值设置类，继承自UGameSettingValueScalarDynamic
 */
UCLASS()
class ULyraSettingValueScalarDynamic_SafeZoneValue : public UGameSettingValueScalarDynamic
{
	GENERATED_BODY()

public:
	/**
	 * 重置为默认值
	 */
	virtual void ResetToDefault() override;
	/**
	 * 恢复到初始值
	 */
	virtual void RestoreToInitial() override;
};

/**
 * 安全区域编辑器设置操作类，继承自UGameSettingAction
 */
UCLASS()
class ULyraSettingAction_SafeZoneEditor : public UGameSettingAction
{
	GENERATED_BODY()
	
public:
	ULyraSettingAction_SafeZoneEditor();
	/**
	 * 获取子设置项
	 */
	virtual TArray<UGameSetting*> GetChildSettings() override;

private:
	UPROPERTY()
	TObjectPtr<ULyraSettingValueScalarDynamic_SafeZoneValue> SafeZoneValueSetting; // 安全区域数值设置对象
};